// Copyright 2015 Ivan Popivanov
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package net.tradelib.core;
import java.time.Duration;
import java.util.HashMap;
public class BarHierarchy {
private HashMap<String, HashMap<Duration, BarHistory>> historiesMap;
public BarHierarchy() {
historiesMap = new HashMap<String, HashMap<Duration,BarHistory>>();
}
public BarHistory getHistory(String symbol, Duration duration) {
HashMap<Duration,BarHistory> symbolHistories = historiesMap.get(symbol);
if(symbolHistories == null) {
return null;
}
BarHistory barHistory = symbolHistories.get(duration);
if(barHistory == null) {
barHistory = new BarHistory();
symbolHistories.put(duration, barHistory);
}
return barHistory;
}
public void addSymbol(String symbol) {
HashMap<Duration,BarHistory> symbolHistories = historiesMap.get(symbol);
if(symbolHistories == null) {
symbolHistories = new HashMap<Duration, BarHistory>();
historiesMap.put(symbol, symbolHistories);
}
}
public BarHistory getHistory(Bar bar) {
return getHistory(bar.getSymbol(), bar.getDuration());
}
}